/**
 * @param {number[]} nums
 * @return {number[]}
 */
var findDisappearedNumbers = function (nums) {
  // 定义一个数组（存储没有出现过的元素）
  let res = []
  // 遍历数组元素
  for (let i = 0; i < nums.length; i++) {
    // 需要标记的索引index=当前元素nums[i]-1
    // 重复元素num[i]已经是负数了，所以当前元素nums[i]取绝对值（保证该索引>=0）
    let index = Math.abs(nums[i]) - 1
    // 将需要标记索引位置的元素置为负数
    // 重复元素num[index]已经是负数了，所以重复元素num[index]取绝对值（保证该元素遍历完毕后一定是负数）
    nums[index] = -Math.abs(nums[index])
  }
  // 再遍历一遍元素
  for (let i = 0; i < nums.length; i++) {
    // 如果当前元素是正数，把 当前元素的索引+1 放入res，即为没有出现过的数字
    if (nums[i] > 0) {
      res.push(i + 1)
    }
  }
  // 返回数组
  return res
};